/**
 * 消息通知相关 API
 */

import http from '../http.js';
import {
	mockGetMessages,
	mockGetMessageDetail,
	mockMarkMessageAsRead,
	mockMarkAllAsRead,
	mockGetUnreadCount
} from '../mock.js';

/**
 * 获取消息列表
 * @param {Object} params - 查询参数
 * @param {String} params.type - 消息类型：reply(回复)、system(系统)、official(官方)、activity(活动)、other(其它)
 * @param {Number} params.isRead - 是否已读：0未读、1已读、不传查所有
 * @param {Number} params.pageNum - 页码
 * @param {Number} params.pageSize - 每页数量
 */
export const getMessages = (params) => {
	// 使用 Mock 数据
	return mockGetMessages(params);
	
	// 真实接口调用
	// return http.get('/api/message/list', params);
};

/**
 * 获取消息详情
 * @param {Number} messageId - 消息ID
 */
export const getMessageDetail = (messageId) => {
	// 使用 Mock 数据
	return mockGetMessageDetail(messageId);
	
	// 真实接口调用
	// return http.get(`/api/message/${messageId}`);
};

/**
 * 标记消息为已读
 * @param {Number} messageId - 消息ID
 */
export const markMessageAsRead = (messageId) => {
	// 使用 Mock 数据
	return mockMarkMessageAsRead(messageId);
	
	// 真实接口调用
	// return http.post('/api/message/read', { messageId });
};

/**
 * 标记所有消息为已读
 * @param {String} type - 消息类型，为空则标记所有类型
 */
export const markAllAsRead = (type) => {
	// 使用 Mock 数据
	return mockMarkAllAsRead(type);
	
	// 真实接口调用
	// return http.post('/api/message/readAll', { type });
};

/**
 * 获取未读消息数量
 */
export const getUnreadCount = () => {
	// 使用 Mock 数据
	return mockGetUnreadCount();
	
	// 真实接口调用
	// return http.get('/api/message/unreadCount');
};

export default {
	getMessages,
	getMessageDetail,
	markMessageAsRead,
	markAllAsRead,
	getUnreadCount
};
